iT邦幫忙

0

Windows Shellcode 注入

  • 分享至 

  • xImage
  •  

Windows Shellcode 注入

這個專案展示了兩種在 Windows 上的 shellcode 注入方法:自我注入和進程注入。提供的範例顯示了如何使用 Windows API 將 shellcode 注入並執行在進程的記憶體空間中。
image

免責聲明

這段程式碼僅供教育用途。濫用此程式碼可能會導致嚴重後果。請負責任地使用它,僅在您有權測試的系統上使用。

概述

  • 自我注入:在同一個進程內注入並執行 shellcode。
  • 進程注入:將 shellcode 注入並執行到遠端進程(例如 mspaint.exe)中。

先決條件

Windows 作業系統( 從 Windows 官方網站下載
Visual Studio 或任何支援 Windows API 的 C++ 編譯器(從 Visual Studio 下載頁面 下載

編譯

要編譯這段程式碼,請使用 C++ 編譯器,例如 Visual Studio:

  1. 在 Visual Studio 中打開專案。
  2. 確保專案設置為編譯 C++ 應用程式。
  3. 建置專案。

自我注入

自我注入是指在同一進程內注入並執行 shellcode。提供的範例展示了如何分配記憶體、將 shellcode 寫入記憶體中,並創建一個執行該 shellcode 的執行緒。

程式碼說明

  • 記憶體分配:使用 VirtualAlloc 分配記憶體。
  • shellcode 寫入:使用 RtlCopyMemory 將 shellcode 寫入已分配的記憶體中。
  • 執行緒創建:使用 CreateThread 創建執行緒來執行 shellcode。

使用方式

  1. 編譯程式碼。
  2. 執行編譯後的可執行檔。
  3. 在同一個進程內,shellcode(顯示一個消息框)將會執行。

進程注入

進程注入是一種將 shellcode 注入並執行到遠端進程中的技術。提供的範例展示了如何找到目標進程(例如 mspaint.exe)、在該進程中分配記憶體、寫入 shellcode,並創建一個遠端執行緒來執行 shellcode。

程式碼說明

  • 進程列舉:使用 CreateToolhelp32Snapshot 和 Process32First / Process32Next 來尋找目標進程。
  • 記憶體分配:使用 VirtualAllocEx 在目標進程中分配記憶體。
  • shellcode 寫入:使用 WriteProcessMemory 將 shellcode 寫入目標進程的記憶體中。
  • 執行緒創建:使用 CreateRemoteThread 創建遠端執行緒來執行 shellcode。

使用方式

  1. 編譯程式碼。
  2. 確保 mspaint.exe 正在執行。
  3. 執行編譯後的可執行檔
  4. 在 mspaint.exe 中,shellcode(顯示一個消息框)將會執行。

Shellcode

  • 提供的 shellcode 範例是簡單的消息框:
  • 自我注入 shellcode:x86 訊息框 shellcode。
  • 進程注入 shellcode:x64 訊息框 shellcode。

注意事項

  • 確保目標進程(mspaint.exe)在執行進程注入程式碼之前已經啟動。
  • 提供的 shellcode 僅供演示用途,可能需要根據其他使用情況進行調整。
    image
轉載連結:https://github.com/moroii69/custom-malware

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言